package com.ccys.db.dto.doctor.cancelConsult;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @program: WhiteCoat
 * @description: 取消问诊接收Dto
 * @author: ZhangJingCan
 * @create: 2024-03-07 11:39
 **/

@Data
public class CancelConsultationDto {

    private String booking_id;//": "db121c3e-651f-4948-919c-725e9de7408c",
    private String presenting_complaint;//": "",
    private List<Diagnosis> diagnosis;//": [],
    private String mamagement;//": "",
    private String instructions_to_patient;//": "",
    private Integer flag_patient_id;//": 0,
    private String flag_patient_note;//": "",
    private String specialist_id;//": null,
    private String medical_letter;//": "",
    @JsonFormat(pattern = "yyyy/MM/dd")
    @DateTimeFormat(pattern = "yyyy/MM/dd")
    private Date medical_certification_begin_date;//": "",
    @JsonFormat(pattern = "yyyy/MM/dd")
    @DateTimeFormat(pattern = "yyyy/MM/dd")
    private Date medical_certification_end_date;//": "",
    private String medical_certification_additional_note;//": "",
    private List<Symptoms> symptoms;//": [],
    private BigDecimal patient_weight;//": 70.0,
    private BigDecimal patient_height;//": 165.0,
    private BigDecimal patient_temp;//": null,
    private BigDecimal patient_bp1;//": null,
    private BigDecimal patient_bp2;//": null,
    private BigDecimal patient_hr;//": null,
    private List<Medications> medications;//": null,
    private List<Allergies> allergies;//": null,
    private List<MedicationReactions> medication_reactions;//": null,
    private Boolean show_memo;//": false,
    private String memo;//": "",
    private Boolean waive_consultation_fee;//": false,
    private Boolean waive_delivery_fee;//": false,
    private String waive_delivery_reason;//": "",
    private Boolean need_medical_letter;//": false,
    private Boolean need_medical_certification;//": false,
    private String reason;//": "",
    private Boolean waive_medication_fee;//": false,
    private String waive_medication_reason;//": "",
    private Boolean waive_practice_fee;//": false,
    private String waive_practice_reason;//": "",
    private Integer booking_clinic_id;//": 0,
    private BigDecimal consultationCharges;//": 0.0,
    private BigDecimal practiceCharge;//": 0.0,
    private Boolean aia_member;//": false,
    private String aia_identifier;//": "0",
    private Boolean doctor_manual;//": false,
    private List<SymptomPhoto> symptom_photos;//": null
    private String cancellation_reason;//取消原因
    private String cancellation_reason_detail;//取消原因详细

    @Data
    public static class SymptomPhoto {
        private String image_name;
        private String booking_image_id;
    }

    @Data
    public static class MedicationReactions {
        private String medication_reaction_id;
        private Integer index;
        private String name;
        private String otherreaction;
    }

    @Data
    public static class Allergies {
        private String id;//": "4c6edf34-ab88-4beb-8394-006d74373ff9",
        private String name;//": "Nurofen (Ibuprofen) For Children 60 ml",
        private Integer index;//": 1,
        private String mem_allergies_id;//": null,
        private String MDAllergies_ID;//": null
    }

    @Data
    public static class Medications {
        private String name;//": "Klacid (Clarithromycin) 250mg/5ml Susp 60ml",
        private String usage_period;//": "e2fb447a-e0eb-4612-a282-f01918b987ed",
        private String usage_period_id;//": "e2fb447a-e0eb-4612-a282-f01918b987ed",
        private String id;//": "2980181f-0fdc-4af4-90d7-3490f59e4c54",
        private String amount_of_dosage;//": "1"
    }

    @Data
    public static class Symptoms {
        private Integer ordering;//": 0,
        private String id;//": null,
        private String name;//": "fever, headache"
    }

    @Data
    public static class Diagnosis {
        private Integer ordering;//": 0,
        private String id;//": null,
        private String name;//": "A01.0 - Typhoid fever",
        private String code;//": null,
        private Boolean is_in_exclusion_list;//": false,
        private String trans_name;//": ""
    }

}
